Understanding And Debugging Applications Using Traces